package com.woniu.cloud.api;

import com.woniu.cloud.common.dto.Result;
import com.woniu.cloud.form.StoreInsertGoodForm;
import com.woniu.cloud.form.StoreUpdateGoodForm;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient(value = "shop",contextId = "StoreGoodApi")
public interface StoreGoodApi {

    /**
     * TODO 查询----------------------------------------------
     */

    /***
     * 商品查询功能
     * @param storeGoodId 店铺商品表Id
     * @return data为该商品详情
     */
    @GetMapping("getStoreGoodByStoreGoodId")
    Result getStoreGoodByStoreGoodId(@RequestParam("storeGoodId") Integer storeGoodId);

    /***
     * 商品查询功能
     * @param storeGoodId 店铺商品表Id
     * @param storeGoodGoodId 店铺商品表商品Id
     * @return data为该商品详情
     */
    @GetMapping("getStoreGoodByStoreGoodId")
    Result getStoreGoodByStoreGoodId(
            @RequestParam("storeGoodId") Integer storeGoodId,
            @RequestParam("storeGoodGoodId") Integer storeGoodGoodId);

    /***
     * 商品检索功能
     * @param storeGoodName 商品检索名
     * @return
     */
    @GetMapping("getStoreGoodByGoodName")
    Result getStoreGoodByGoodName(@RequestParam("storeGoodName") String storeGoodName,@RequestParam("pageIndex")Integer pageIndex);

    /***
     * 商品分类查询功能(根据类型查看)
     * @param storeGoodType 店铺商品表类型
     * @return data为店铺商品表商品分类list
     */
    @GetMapping("getStoreGoodByStoreGoodType")
    Result getStoreGoodByStoreGoodType(@RequestParam("storeGoodType") String storeGoodType,@RequestParam("pageIndex")Integer pageIndex);

    /***
     *
     * @return店铺商品表商品分类
     */

    @GetMapping("getStoreGoodTypeList")
    Result getStoreGoodTypeList();

    /**
     * TODO 添加----------------------------------------------
     */

    /***
     * 添加商品
     * @param storeInsertGoodForm 店铺商品表前端传参对象
     * @return data为success/fail
     */
    @PostMapping("insertStoreGood")
    Result insertStoreGood(@RequestBody StoreInsertGoodForm storeInsertGoodForm);

    /**
     * TODO 修改----------------------------------------------
     */

    /***
     * 修改商品信息
     * @param storeUpdateGoodForm 店铺商品表前端传参修改信息对象
     * @return data为success/fail
     */
    @PutMapping("updateStoreGood")
    Result updateStoreGood(@RequestBody StoreUpdateGoodForm storeUpdateGoodForm);

    /***
     * 库存修改
     * @param storeGoodId 店铺商品表Id
     * @param storeGoodNum 店铺商品库存
     * @return data为success/fail
     */
    @PutMapping("updateStoreGoodNumByStoreGoodId")
    Result updateStoreGoodNumByStoreGoodId(@RequestParam("storeGoodId") Integer storeGoodId,
                                                    @RequestParam("storeGoodNum")Integer storeGoodNum);

    /***
     * 销量修改
     * @param storeGoodId 店铺商品表Id
     * @param storeGoodSellNum 销量数据
     * @return data为success/fail
     */
    @PutMapping("updateStoreGoodSellNumByStoreGoodId")
    Result updateStoreGoodSellNumByStoreGoodId(@RequestParam("storeGoodId") Integer storeGoodId,@RequestParam("storeGoodSellNum") Integer storeGoodSellNum);

    /**
     * TODO 删除----------------------------------------------
     *
     */

    /***
     * 根据商品id删除商品
     * @param storeGoodId 店铺商品Id
     * @return data为success/fail
     */
    @DeleteMapping("deleteStoreGoodByStoreGoodId")
    Result deleteStoreGoodByStoreGoodId(@RequestParam("storeGoodId") Integer storeGoodId);

}
